#include "gtkwidgetaccessible.h"
#include "gtknotebookpageaccessible.h"
+#define TOOLTIP_KEY "tooltip"
+
extern GtkWidget *_focus_widget;
atk_object_notify_state_change (focus_obj, ATK_STATE_FOCUSED, focus_in);
}
+static void
+gtk_widget_accessible_update_tooltip (GtkWidgetAccessible *accessible,
+ GtkWidget *widget)
+{
+ g_object_set_data_full (G_OBJECT (accessible),
+ TOOLTIP_KEY,
+ gtk_widget_get_tooltip_text (widget),
+ g_free);
+}
+
static void
gtk_widget_accessible_initialize (AtkObject *obj,
gpointer data)
GTK_WIDGET_ACCESSIBLE (obj)->layer = ATK_LAYER_WIDGET;
obj->role = ATK_ROLE_UNKNOWN;
+
+ gtk_widget_accessible_update_tooltip (GTK_WIDGET_ACCESSIBLE (obj), widget);
}
static const gchar *
if (accessible->description)
return accessible->description;
- return gtk_widget_get_tooltip_text (widget);
+ return g_object_get_data (G_OBJECT (accessible), TOOLTIP_KEY);
}
static AtkObject *
state = ATK_STATE_HORIZONTAL;
value = (gtk_orientable_get_orientation (orientable) == GTK_ORIENTATION_HORIZONTAL);
}
- else
+ else if (g_strcmp0 (pspec->name, "tooltip-text") == 0)
+ {
+ gtk_widget_accessible_update_tooltip (GTK_WIDGET_ACCESSIBLE (atk_obj),
+ widget);
+ }
return;
atk_object_notify_state_change (atk_obj, state, value);